Field of Invention
The present invention relates to a field of program feature discovering and software plagiarism detecting, and more particularly to a method for plagiarism detection of multithreaded program.
Description of Related Arts
Due to various physical bottlenecks (such as high temperature, power dissipation, electricity leakage), CPU clock speed is more and more difficult to be increased. In recent years, CPU manufacturers have shifted focus to hyper-threading and multi-core technologies for improving CPU performance. With hyper-threading and multi-core technologies as a standard of conventional CPU, serial programs have been difficult to take full advantage of the calculation ability of the conventional CPU. As a main method for parallel computing, multithreaded programs have become a key for taking full advantage CPU performance and improving system efficiency.
However, problems of intellectual property protection of multithreaded programs is becoming worse and worse with the rapid development of software, such as legal disputes involving Samsung and Apple about plagiarism of mobile phone applications. Such events often happen, which greatly threats interests of large companies. Therefore, plagiarism of multithreaded program has become a big block in front of the healthy development of software industry.
As a result, a series of methods have been raised to prevent and detect software plagiarism, wherein plagiarism detection technology based on software birthmark is a main method. Software birthmark is features reflecting inherent attributes of a program, which is able to be uniquely identified. Related researches measure similarity of two programs through converting plagiarism detecting to similarity analysis and based on similarity calculation, wherein key technologies mainly relate to extraction of high quality software birthmark and similarity calculation.
However, the conventional software birthmark is mainly designed for single-threaded program, which uses the key information obtained during a single program execution as the software birthmark, without considering thread interleaving of multithreaded program during execution. With same inputting conditions, different threads of multithreaded program interleave during execution, causing difference of program behaviors, such as system calls sequence. Such situation generates great randomness of the conventional birthmark based plagiarism detection method during analysis of multithreaded program. In addition, the conventional plagiarism detection methods are limited as follows. 1) Most of the methods are based on source code, but source code is usually unavailable during plagiarism detection, and only binary code of detecting target is available. 2) The conventional software birthmark greatly depends on a specific operating system or programming language, and has a small scope of application. 3) Most of the conventional software birthmark cannot handle varied and thorough code obfuscation technologies.